package com.mind.invoice.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.mind.common.annotation.Excel;
import com.mind.common.core.domain.BaseEntity;
import io.swagger.v3.oas.annotations.media.Schema;

/**
 * 发票对象 aj_report_invoice
 * 
 * @author today
 * @date 2025-04-25
 */
@Schema(description = " 发票")
public class AjReportInvoice extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 单据编号  */
    @Excel(name = "单据编号 ")
    @Schema(description = "单据编号 ")
    private String reportNo;

    /** 费用id  */
    @Excel(name = "费用id ")
    @Schema(description = "费用id ")
    private String expenseId;

    /** 开票日期 */
    @Excel(name = "开票日期")
    @Schema(description = "开票日期")
    private String invoiceDate;

    /** 发票金额 */
    @Excel(name = "发票金额")
    @Schema(description = "发票金额")
    private String invoiceMoney;

    /** 发票类型  */
    @Excel(name = "发票类型 ")
    @Schema(description = "发票类型 ")
    private String invoiceType;

    /** 消费类型 */
    @Excel(name = "消费类型")
    @Schema(description = "消费类型")
    private String consumeType;

    /** 报销金额 */
    @Excel(name = "报销金额")
    @Schema(description = "报销金额")
    private String useMoney;

    /** 币别  */
    @Excel(name = "币别 ")
    @Schema(description = "币别 ")
    private String currencyCode;

    /** 交易日期 */
    @Excel(name = "交易日期")
    @Schema(description = "交易日期")
    private String tradeDate;

    /** 城市 */
    @Excel(name = "城市")
    @Schema(description = "城市")
    private String invoiceCity;

    /** 供应商 */
    @Excel(name = "供应商")
    @Schema(description = "供应商")
    private String supplier;

    /** 发票代码 */
    @Excel(name = "发票代码")
    @Schema(description = "发票代码")
    private String invoiceCode;

    /** 发票号码 */
    @Excel(name = "发票号码")
    @Schema(description = "发票号码")
    private String invoiceNum;

    /** 发票状态(0代表无票，1代表普票，2代表税票） */
    @Excel(name = "发票状态(0代表无票，1代表普票，2代表税票）")
    @Schema(description = "发票状态(0代表无票，1代表普票，2代表税票）")
    private String invoiceStatus;

    /** 里程 （出租车才有） */
    @Excel(name = "里程 ", readConverterExp = "出=租车才有")
    @Schema(description = "里程 ")
    private String mileage;

    /** 上车时间（出租车才有） */
    @Excel(name = "上车时间", readConverterExp = "出=租车才有")
    @Schema(description = "上车时间")
    private String getOnTime;

    /** 下车时间（出租车才有） */
    @Excel(name = "下车时间", readConverterExp = "出=租车才有")
    @Schema(description = "下车时间")
    private String debusTime;

    /** 图片地址 */
    @Excel(name = "图片地址")
    @Schema(description = "图片地址")
    private String imgPath;

    /** 其他动态字段  */
    @Excel(name = "其他动态字段 ")
    @Schema(description = "其他动态字段 ")
    private String otherFields;

    /** 税额 */
    @Excel(name = "税额")
    @Schema(description = "税额")
    private String invoiceTax;

    /** 原始文件 */
    @Excel(name = "原始文件")
    @Schema(description = "原始文件")
    private String originalPath;

    /** 发票Json */
    @Excel(name = "发票Json")
    @Schema(description = "发票Json")
    private String dataJson;

    /** 不含税金额 */
    @Excel(name = "不含税金额")
    @Schema(description = "不含税金额")
    private String preTax;

    /** 税率 */
    @Excel(name = "税率")
    @Schema(description = "税率")
    private String taxRate;

    /** 验真状态 */
    @Excel(name = "验真状态")
    @Schema(description = "验真状态")
    private Long validStatus;

    /** 验真次数 */
    @Excel(name = "验真次数")
    @Schema(description = "验真次数")
    private Long validCount;

    /** 当日验真次数 */
    @Excel(name = "当日验真次数")
    @Schema(description = "当日验真次数")
    private Long validDayCount;

    /** 发票校验码 */
    @Excel(name = "发票校验码")
    @Schema(description = "发票校验码")
    private String checkCode;

    /** 扩展1  */
    @Excel(name = "扩展1 ")
    @Schema(description = "扩展1 ")
    private String ext1;

    /** 扩展2  */
    @Excel(name = "扩展2 ")
    @Schema(description = "扩展2 ")
    private String ext2;

    /** 扩展3 */
    @Excel(name = "扩展3")
    @Schema(description = "扩展3")
    private String ext3;

    /** 扩展4 */
    @Excel(name = "扩展4")
    @Schema(description = "扩展4")
    private String ext4;

    /** 扩展5   */
    @Excel(name = "扩展5  ")
    @Schema(description = "扩展5  ")
    private String ext5;

    /** 扩展6 */
    @Excel(name = "扩展6")
    @Schema(description = "扩展6")
    private String ext6;

    /** 扩展7  */
    @Excel(name = "扩展7 ")
    @Schema(description = "扩展7 ")
    private String ext7;

    /** 扩展8  */
    @Excel(name = "扩展8 ")
    @Schema(description = "扩展8 ")
    private String ext8;

    /** 扩展9  */
    @Excel(name = "扩展9 ")
    @Schema(description = "扩展9 ")
    private String ext9;

    /** 扩展10  */
    @Excel(name = "扩展10 ")
    @Schema(description = "扩展10 ")
    private String ext10;

    /** 扩展11  */
    @Excel(name = "扩展11 ")
    @Schema(description = "扩展11 ")
    private String ext11;

    /** 扩展12 */
    @Excel(name = "扩展12")
    @Schema(description = "扩展12")
    private String ext12;

    /** 扩展13 */
    @Excel(name = "扩展13")
    @Schema(description = "扩展13")
    private String ext13;

    /** 扩展14 */
    @Excel(name = "扩展14")
    @Schema(description = "扩展14")
    private String ext14;

    /** 扩展15  */
    @Excel(name = "扩展15 ")
    @Schema(description = "扩展15 ")
    private String ext15;

    /** 扩展16   */
    @Excel(name = "扩展16  ")
    @Schema(description = "扩展16  ")
    private String ext16;

    /** 扩展17 */
    @Excel(name = "扩展17")
    @Schema(description = "扩展17")
    private String ext17;

    /** 扩展18 */
    @Excel(name = "扩展18")
    @Schema(description = "扩展18")
    private String ext18;

    /** 扩展19  */
    @Excel(name = "扩展19 ")
    @Schema(description = "扩展19 ")
    private String ext19;

    /** 扩展20 */
    @Excel(name = "扩展20")
    @Schema(description = "扩展20")
    private String ext20;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "修改时间yyyy-MM-dd")
    private Date updateDate;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @Schema(description = "创建时间yyyy-MM-dd")
    private Date createDate;

    /** 备注信息 */
    @Excel(name = "备注信息")
    @Schema(description = "备注信息")
    private String remarks;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }
    public void setReportNo(String reportNo) 
    {
        this.reportNo = reportNo;
    }

    public String getReportNo() 
    {
        return reportNo;
    }
    public void setExpenseId(String expenseId) 
    {
        this.expenseId = expenseId;
    }

    public String getExpenseId() 
    {
        return expenseId;
    }
    public void setInvoiceDate(String invoiceDate) 
    {
        this.invoiceDate = invoiceDate;
    }

    public String getInvoiceDate() 
    {
        return invoiceDate;
    }
    public void setInvoiceMoney(String invoiceMoney) 
    {
        this.invoiceMoney = invoiceMoney;
    }

    public String getInvoiceMoney() 
    {
        return invoiceMoney;
    }
    public void setInvoiceType(String invoiceType) 
    {
        this.invoiceType = invoiceType;
    }

    public String getInvoiceType() 
    {
        return invoiceType;
    }
    public void setConsumeType(String consumeType) 
    {
        this.consumeType = consumeType;
    }

    public String getConsumeType() 
    {
        return consumeType;
    }
    public void setUseMoney(String useMoney) 
    {
        this.useMoney = useMoney;
    }

    public String getUseMoney() 
    {
        return useMoney;
    }
    public void setCurrencyCode(String currencyCode) 
    {
        this.currencyCode = currencyCode;
    }

    public String getCurrencyCode() 
    {
        return currencyCode;
    }
    public void setTradeDate(String tradeDate) 
    {
        this.tradeDate = tradeDate;
    }

    public String getTradeDate() 
    {
        return tradeDate;
    }
    public void setInvoiceCity(String invoiceCity) 
    {
        this.invoiceCity = invoiceCity;
    }

    public String getInvoiceCity() 
    {
        return invoiceCity;
    }
    public void setSupplier(String supplier) 
    {
        this.supplier = supplier;
    }

    public String getSupplier() 
    {
        return supplier;
    }
    public void setInvoiceCode(String invoiceCode) 
    {
        this.invoiceCode = invoiceCode;
    }

    public String getInvoiceCode() 
    {
        return invoiceCode;
    }
    public void setInvoiceNum(String invoiceNum) 
    {
        this.invoiceNum = invoiceNum;
    }

    public String getInvoiceNum() 
    {
        return invoiceNum;
    }
    public void setInvoiceStatus(String invoiceStatus) 
    {
        this.invoiceStatus = invoiceStatus;
    }

    public String getInvoiceStatus() 
    {
        return invoiceStatus;
    }
    public void setMileage(String mileage) 
    {
        this.mileage = mileage;
    }

    public String getMileage() 
    {
        return mileage;
    }
    public void setGetOnTime(String getOnTime) 
    {
        this.getOnTime = getOnTime;
    }

    public String getGetOnTime() 
    {
        return getOnTime;
    }
    public void setDebusTime(String debusTime) 
    {
        this.debusTime = debusTime;
    }

    public String getDebusTime() 
    {
        return debusTime;
    }
    public void setImgPath(String imgPath) 
    {
        this.imgPath = imgPath;
    }

    public String getImgPath() 
    {
        return imgPath;
    }
    public void setOtherFields(String otherFields) 
    {
        this.otherFields = otherFields;
    }

    public String getOtherFields() 
    {
        return otherFields;
    }
    public void setInvoiceTax(String invoiceTax) 
    {
        this.invoiceTax = invoiceTax;
    }

    public String getInvoiceTax() 
    {
        return invoiceTax;
    }
    public void setOriginalPath(String originalPath) 
    {
        this.originalPath = originalPath;
    }

    public String getOriginalPath() 
    {
        return originalPath;
    }
    public void setDataJson(String dataJson) 
    {
        this.dataJson = dataJson;
    }

    public String getDataJson() 
    {
        return dataJson;
    }
    public void setPreTax(String preTax) 
    {
        this.preTax = preTax;
    }

    public String getPreTax() 
    {
        return preTax;
    }
    public void setTaxRate(String taxRate) 
    {
        this.taxRate = taxRate;
    }

    public String getTaxRate() 
    {
        return taxRate;
    }
    public void setValidStatus(Long validStatus) 
    {
        this.validStatus = validStatus;
    }

    public Long getValidStatus() 
    {
        return validStatus;
    }
    public void setValidCount(Long validCount) 
    {
        this.validCount = validCount;
    }

    public Long getValidCount() 
    {
        return validCount;
    }
    public void setValidDayCount(Long validDayCount) 
    {
        this.validDayCount = validDayCount;
    }

    public Long getValidDayCount() 
    {
        return validDayCount;
    }
    public void setCheckCode(String checkCode) 
    {
        this.checkCode = checkCode;
    }

    public String getCheckCode() 
    {
        return checkCode;
    }
    public void setExt1(String ext1) 
    {
        this.ext1 = ext1;
    }

    public String getExt1() 
    {
        return ext1;
    }
    public void setExt2(String ext2) 
    {
        this.ext2 = ext2;
    }

    public String getExt2() 
    {
        return ext2;
    }
    public void setExt3(String ext3) 
    {
        this.ext3 = ext3;
    }

    public String getExt3() 
    {
        return ext3;
    }
    public void setExt4(String ext4) 
    {
        this.ext4 = ext4;
    }

    public String getExt4() 
    {
        return ext4;
    }
    public void setExt5(String ext5) 
    {
        this.ext5 = ext5;
    }

    public String getExt5() 
    {
        return ext5;
    }
    public void setExt6(String ext6) 
    {
        this.ext6 = ext6;
    }

    public String getExt6() 
    {
        return ext6;
    }
    public void setExt7(String ext7) 
    {
        this.ext7 = ext7;
    }

    public String getExt7() 
    {
        return ext7;
    }
    public void setExt8(String ext8) 
    {
        this.ext8 = ext8;
    }

    public String getExt8() 
    {
        return ext8;
    }
    public void setExt9(String ext9) 
    {
        this.ext9 = ext9;
    }

    public String getExt9() 
    {
        return ext9;
    }
    public void setExt10(String ext10) 
    {
        this.ext10 = ext10;
    }

    public String getExt10() 
    {
        return ext10;
    }
    public void setExt11(String ext11) 
    {
        this.ext11 = ext11;
    }

    public String getExt11() 
    {
        return ext11;
    }
    public void setExt12(String ext12) 
    {
        this.ext12 = ext12;
    }

    public String getExt12() 
    {
        return ext12;
    }
    public void setExt13(String ext13) 
    {
        this.ext13 = ext13;
    }

    public String getExt13() 
    {
        return ext13;
    }
    public void setExt14(String ext14) 
    {
        this.ext14 = ext14;
    }

    public String getExt14() 
    {
        return ext14;
    }
    public void setExt15(String ext15) 
    {
        this.ext15 = ext15;
    }

    public String getExt15() 
    {
        return ext15;
    }
    public void setExt16(String ext16) 
    {
        this.ext16 = ext16;
    }

    public String getExt16() 
    {
        return ext16;
    }
    public void setExt17(String ext17) 
    {
        this.ext17 = ext17;
    }

    public String getExt17() 
    {
        return ext17;
    }
    public void setExt18(String ext18) 
    {
        this.ext18 = ext18;
    }

    public String getExt18() 
    {
        return ext18;
    }
    public void setExt19(String ext19) 
    {
        this.ext19 = ext19;
    }

    public String getExt19() 
    {
        return ext19;
    }
    public void setExt20(String ext20) 
    {
        this.ext20 = ext20;
    }

    public String getExt20() 
    {
        return ext20;
    }
    public void setUpdateDate(Date updateDate) 
    {
        this.updateDate = updateDate;
    }

    public Date getUpdateDate() 
    {
        return updateDate;
    }
    public void setCreateDate(Date createDate) 
    {
        this.createDate = createDate;
    }

    public Date getCreateDate() 
    {
        return createDate;
    }
    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("reportNo", getReportNo())
            .append("expenseId", getExpenseId())
            .append("invoiceDate", getInvoiceDate())
            .append("invoiceMoney", getInvoiceMoney())
            .append("invoiceType", getInvoiceType())
            .append("consumeType", getConsumeType())
            .append("useMoney", getUseMoney())
            .append("currencyCode", getCurrencyCode())
            .append("tradeDate", getTradeDate())
            .append("invoiceCity", getInvoiceCity())
            .append("supplier", getSupplier())
            .append("invoiceCode", getInvoiceCode())
            .append("invoiceNum", getInvoiceNum())
            .append("invoiceStatus", getInvoiceStatus())
            .append("mileage", getMileage())
            .append("getOnTime", getGetOnTime())
            .append("debusTime", getDebusTime())
            .append("imgPath", getImgPath())
            .append("otherFields", getOtherFields())
            .append("invoiceTax", getInvoiceTax())
            .append("originalPath", getOriginalPath())
            .append("dataJson", getDataJson())
            .append("preTax", getPreTax())
            .append("taxRate", getTaxRate())
            .append("validStatus", getValidStatus())
            .append("validCount", getValidCount())
            .append("validDayCount", getValidDayCount())
            .append("checkCode", getCheckCode())
            .append("ext1", getExt1())
            .append("ext2", getExt2())
            .append("ext3", getExt3())
            .append("ext4", getExt4())
            .append("ext5", getExt5())
            .append("ext6", getExt6())
            .append("ext7", getExt7())
            .append("ext8", getExt8())
            .append("ext9", getExt9())
            .append("ext10", getExt10())
            .append("ext11", getExt11())
            .append("ext12", getExt12())
            .append("ext13", getExt13())
            .append("ext14", getExt14())
            .append("ext15", getExt15())
            .append("ext16", getExt16())
            .append("ext17", getExt17())
            .append("ext18", getExt18())
            .append("ext19", getExt19())
            .append("ext20", getExt20())
            .append("createBy", getCreateBy())
            .append("updateDate", getUpdateDate())
            .append("createDate", getCreateDate())
            .append("remarks", getRemarks())
            .toString();
    }
}
